package com.example.androidapp2.DbClasses;

public class Queries {

	//CREATE
	public static String CreateTablaTarjeta = "CREATE TABLE IF NOT EXISTS Tarjeta (IdMovPago NUMERIC, Fecha TEXT, IdMovimiento NUMERIC, IdTarjeta INTEGER PRIMARY KEY, Cuotas NUMERIC, Pagos NUMERIC)";

	//MODIFICADORES
	public static String GroupCategorias = " GROUP BY M.Categoria";

	public static String WhereMesMov=" AND SUBSTR(M.Fecha,3,6)=?";
	public static String WhereAnioMov=" AND SUBSTR(M.Fecha,5,4)=?";
	public static String WhereMesTrj=" AND (T.Fecha IS null OR SUBSTR(T.Fecha,3,6)=?)";
	public static String WhereAnioTrj=" AND (T.Fecha IS null OR SUBSTR(T.Fecha,5,4)=?)";	
	public static String WhereIdioma =  "AND (Language = ? OR Language IS null ) ";	
	public static String WhereIdiomaNull ="AND Language IS null ";
	public static String WhereEstado ="AND Estado = ? ";
	public static String WhereMedios = " ((Medio = ? AND M.Estado = 1 ) " +
			"	OR  (Medio = ? AND M.Estado = 3 ))";
	public static String WhereDataRef =  "ControlNm = ?";

	public static String Order = "ORDER BY ?"; 
	public static String OrderIngresosMovimientos = "M.IdMovimiento DESC";

	public static String FromMovimientos =  "FROM Movimientos M " +
			"WHERE tipo=? " + "AND " + WhereMedios;
	public static String FromMovimientosSinTipo =  "FROM Movimientos M " + "WHERE" +WhereMedios;

	//SELECT
	public static String SelectTotalMovimientos= "SELECT SUM(Valor) AS Total " + FromMovimientos;
	public static String SelectTotalMovimientosMes = SelectTotalMovimientos + WhereMesMov;
	public static String SelectTotalMovimientosAnio = SelectTotalMovimientos + WhereAnioMov;

	public static String SelectMovimientosFechas = "SELECT Fecha "+FromMovimientosSinTipo;

	public static String UltimoIngreso = "UltimoIngreso";
	public static String SalarioAutomatico = "SalarioAutomatico";
	public static String ContadorLaunches = "ContadorLaunches";
	public static String DiaCambioMes = "DiaCambioMes";
	public static String EstadoRating = "EstadoRating";

	public static String SelectDataRef = "SELECT Valor FROM DataRef WHERE ControlNm = '?'";
	public static String SelectUltimoIngreso = SelectDataRef.replace("?",UltimoIngreso);
	public static String SelectSalarioAutomatico = SelectDataRef.replace("?",SalarioAutomatico);
	public static String SelectTotalLaunches = SelectDataRef.replace("?",ContadorLaunches);
	public static String SelectCambioMes = SelectDataRef.replace("?", DiaCambioMes);
	public static String SelectEstadoRating = SelectDataRef.replace("?", EstadoRating);

	public static String SelectTotalMovimientosPorCategoriaBase = "SELECT D.Valor AS Desc,SUM(M.Valor) AS Total "+
			"FROM Movimientos M JOIN DataRef D "+
			"ON  M.Categoria=D.Codigo "+
			"WHERE D.ControlNm='spnCategorias' "+
			"AND M.Tipo='" + Utils.codEgreso + "' " +
			"AND " + WhereMedios +
			WhereIdioma;


	public static String SelectTotalMovimientosPorCategoria = SelectTotalMovimientosPorCategoriaBase + GroupCategorias;
	public static String SelectTotalMovimientosPorCategoriaMes = SelectTotalMovimientosPorCategoriaBase + WhereMesMov + GroupCategorias;
	public static String SelectTotalMovimientosPorCategoriaAnio = SelectTotalMovimientosPorCategoriaBase + WhereAnioMov + GroupCategorias;

	public static String SelectIngresosBase = "SELECT D.Valor, M.Valor,M.IdMovimiento, SUBSTR(M.Fecha,1,2) || '/'|| SUBSTR(M.Fecha,3,2) || '/'||SUBSTR(M.Fecha,5,4)  AS Fecha,M.Medio,IfNull(T.Cuotas,1),IfNull(T.Pagos,1),D.Estado,D.Codigo " +			
			"FROM Movimientos M LEFT JOIN DataRef D " +				
			"ON  M.Categoria=D.Codigo AND ControlNm = 'spnCategorias' " +
			"LEFT JOIN Tarjeta T " +
			"ON M.IdMovimiento = T.IdMovimiento AND M.Medio = '" + Utils.medioCred + "' AND T.Pagos = (SELECT MAX(Pagos) FROM Tarjeta WHERE IdMovimiento = M.IdMovimiento) "+			
			"WHERE M.Estado = 1 " +
			WhereIdioma;

	public static String SelectIngresos = SelectIngresosBase + Order.replace("?", OrderIngresosMovimientos);
	public static String SelectIngresosMes = SelectIngresosBase + WhereMesMov + WhereMesTrj + Order.replace("?", OrderIngresosMovimientos);
	public static String SelectIngresosAnio = SelectIngresosBase + WhereAnioMov + WhereAnioTrj + Order.replace("?", OrderIngresosMovimientos);

	public static String SelectTarjetaPorIdMovimiento = "SELECT IdTarjeta,IdMovimiento, Cuotas, Pagos, Fecha " +
			"FROM Tarjeta " +
			"WHERE IdMovimiento = ?";	

	public static String SelectIdUltimoMovimiento = "SELECT Max(IdMovimiento) " +
			"FROM Movimientos " +
			"WHERE Tipo = 'Eg' ";
	public static String SelectIdsMovimientosBase ="SELECT IdMovimiento FROM Movimientos M WHERE (Estado = 1 OR Estado = 3) ";
	public static String SelectIdsMovimientosMes = SelectIdsMovimientosBase + WhereMesMov;
	public static String SelectIdsMovimientosAnio = SelectIdsMovimientosBase + WhereAnioMov;

	public static String SelectIdsPagosTarjeta = "SELECT IdMovPago FROM Tarjeta WHERE IdMovimiento = ? and IdMovPago <> 0";

	public static String SelectMaxIdCategorias = "SELECT MAX(Codigo) FROM DataRef WHERE ControlNm = 'spnCategorias' ";
	public static String SelectCategorias = "SELECT Codigo,Valor,Estado FROM DataRef WHERE "; 
	//INSERT


	//UPDATE
	public static String UpdateCambioMes =  "UPDATE DataRef " +
			"SET Valor = ? "+
			" WHERE ControlNm= 'DiaCambioMes'";

	//DELETE

}
